import matplotlib.pyplot as plt
import numpy as np
import matplotlib

# 设置Matplotlib支持中文显示
# 指定字体为SimHei（黑体），如果你的系统中没有这个字体，可以换成其他支持中文的字体
matplotlib.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
matplotlib.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号

# 生成一些示例数据
# 设置随机种子以便结果可重复
np.random.seed(0)

# 生成数据
time1_manual = np.random.uniform(52, 64, 8)
time1_auto = np.random.uniform(43, 46, 6)
data = [time1_manual, time1_auto]
print(data)

# 计算中位数
median_manual = np.median(time1_manual)
median_auto = np.median(time1_auto)

# 创建一个2x1的子图布局
fig, ax = plt.subplots()

# 绘制箱线图
bp = ax.boxplot(data, labels=["人工操作", "自动化操作"], patch_artist=True)

# 设置箱线图的颜色
colors = ['pink', 'lightblue', 'lightgreen']
for box, color in zip(bp['boxes'], colors):
    box.set(color='#7570b3', linewidth=2)
    box.set(facecolor=color)

# 绘制连接中位数的直线
ax.plot([1, 2], [median_manual, median_auto], 'gray', marker='o', markersize=5, label='中位数连线')
# 添加网格（可选）
ax.grid(axis='y', linestyle='--', alpha=0.7)
# 添加标题和标签
ax.set_title('时间对比箱线图')
# ax.set_xlabel('Three separate samples')
ax.set_ylabel('时间(小时)')

# 显示图形  
plt.show()